package br.lsi.supercurriculum.daos;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.lsi.supercurriculum.entidades.Pessoa;
import br.lsi.supercurriculum.interfaces.PessoaDao;
import br.lsi.supercurriculum.util.HibernateUtil;

/**
 * @author Dannylo Johnathan
 * @since 21/08/2012
 */

/**
 * Classe de persistência da entidade Pessoa
 */

public class PessoaDaoImpl implements PessoaDao {

	@Override
	public void salvar(Pessoa pessoa) {
		Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction t = session.beginTransaction();
        session.save(pessoa);
        t.commit();
	}

	@Override
	public Pessoa getPessoa(String cpf) {
		Session session = HibernateUtil.getSessionFactory().openSession();
        return (Pessoa) session.load(Pessoa.class, cpf);
	}

	@Override
	public List<Pessoa> listarPessoas() {
		 Session session = HibernateUtil.getSessionFactory().openSession();
	     Criteria c = session.createCriteria(Pessoa.class);
	     return c.list();
	}

	@Override
	public void excluir(Pessoa pessoa) {
		Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction t = session.beginTransaction();
        session.delete(pessoa);
        t.commit();
		
	}

	@Override
	public void atualizar(Pessoa pessoa) {
		Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction t = session.beginTransaction();
        session.update(pessoa);
        t.commit();
		
	}

}
